package views.mediators {
  import com.axon.mvc.patterns.mediator.AxMediatorPopUp;

  import flash.display.DisplayObject;

  import helpers.Utils;
  import helpers.Verbs;

  import models.vo.Pleito;

  import views.components.PleitoPopUpAceitacaoView;

  public class PleitoPopUpAceitacaoMediator extends AxMediatorPopUp {
    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function PleitoPopUpAceitacaoMediator(parent:DisplayObject, pleito:Pleito) {
      super(parent, pleito);
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function get view():PleitoPopUpAceitacaoView {
      return viewComponent as PleitoPopUpAceitacaoView;
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    override protected function initialize():void {
      regResponseInterest(Pleito, [Verbs.ACEITAR_INSCRICAO]);
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function eventDataChange(body:Object):void {
      if (body == view.cbRepeteNumero) {

        view.mtxtNumeroProcesso.visible = (!view.cbRepeteNumero.selected);
        view.mtxtNumeroProtocolo.visible = (view.cbRepeteNumero.selected);
      }
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function eventOk():void {
      if (view.cbRepeteNumero.selected) {

        Pleito(view.vo).numeroProcesso = Pleito(view.vo).numeroProtocolo;

      } else if (!Utils.numeroProcessoValido(Pleito(view.vo).numeroProcesso)) {

        view.errorString = "Número do processo inválido";
        view.mtxtNumeroProcesso.setFocus();
        return;
      }

      callController(Pleito, Verbs.ACEITAR_INSCRICAO, view.vo);
    }

    //////////////////////////////////////////////////////////////////////////////////////////////////////

    public function respPleitoAceitarInscricaoSuccess(sender:Object, body:Object, extraInfo:Object):void {
      closePopUp();
    }

  }
}